import os
import sys
from PyQt5.QtWidgets import QApplication

def resource_path(relative_path):
    """
    获取资源文件的正确路径，无论是开发环境还是打包后的 EXE 文件。
    :param relative_path: 相对路径（例如 'resource/app.png'）
    :return: 资源文件的完整路径
    """
    try:
        # 运行在 PyInstaller 打包后的环境中
        base_path = sys._MEIPASS
    except Exception:
        # 运行在开发环境中
        base_path = os.path.dirname(__file__)

    return os.path.join(base_path, relative_path)

def set_window_geometry(window, width_ratio=0.8, height_ratio=0.8):
    """
    根据屏幕分辨率动态设置窗口的大小和位置，使其居中。

    :param window: 要设置的窗口对象
    :param width_ratio: 窗口宽度占屏幕宽度的比例，默认为 0.8
    :param height_ratio: 窗口高度占屏幕高度的比例，默认为 0.8
    """
    # 获取屏幕分辨率
    screen = QApplication.primaryScreen()
    screen_size = screen.size()

    # 设置窗口大小为屏幕宽度和高度的指定比例
    window_width = int(screen_size.width() * width_ratio)
    window_height = int(screen_size.height() * height_ratio)

    # 计算窗口位置，使其出现在屏幕的中央
    window_x = (screen_size.width() - window_width) // 2
    window_y = (screen_size.height() - window_height) // 2

    # 设置窗口位置和大小
    window.setGeometry(window_x, window_y, window_width, window_height)
